'use strict';

module.exports = app => {
  const { ENUM, STRING } = app.Sequelize;

  // 文件
  const File = app.model.define('file', {
    // 哈希值
    hash: { type: STRING(28), primaryKey: true },
    // 类型
    type: {
      type: ENUM,
      values: [ 'image', 'video' ],
      allowNull: false,
    },
  });

  File.associate = function() {
    // 横幅
    File.hasMany(app.model.Banner, { foreignKey: 'imageHash' });
    // 文章
    File.hasMany(app.model.Article, { foreignKey: 'imageHash' });
    // 系统配置
    File.hasMany(app.model.Config, { foreignKey: 'imageHash' });
    // 商品多图
    File.hasMany(app.model.ItemImage, { foreignKey: 'imageHash' });
    // 商品
    File.hasMany(app.model.Item, { foreignKey: 'imageHash' });
    // 订单
    File.hasMany(app.model.Order, { foreignKey: 'imageHash' });
    // 店铺分类
    File.hasMany(app.model.StoreClass, { foreignKey: 'imageHash' });
    // 店铺
    File.hasMany(app.model.Store, { foreignKey: 'imageHash' });
    // 店铺执照
    File.hasMany(app.model.Store, { foreignKey: 'fileHash' });
    // 店铺图片
    File.hasMany(app.model.StoreImage, { foreignKey: 'imageHash' });
    // 用户
    File.hasMany(app.model.User, { foreignKey: 'imageHash' });
  };

  return File;
};
